<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
	<title>分组的组号分配</title>
	<style type="text/css">
	* {
		padding: 0;
		margin: 0;
	}
    </style>
</head>
<body>
	<div class="container">
		<h1>分组的组号分配</h1>
	</div>
	<script src="https://cdn.staticfile.org/jquery/3.2.0/jquery.js"></script>
	<script type="text/javascript">
	 

	// 4, 未匹配到的分组是否也占位  
	var str = "http://www.runoob.com:80/html/html-tutorial.html?id=3&age=22#good";
	// url: protocol :// hostname[:port] / path / [;parameters][?query]#fragment
	//        \1(协议)   \2(域名) \3(端口) \4(路径/参数)
	var reg = /(\w+):\/\/(?<domain>[^/:]+)(:(?<port>\d*))?([^# ]*)/;
	// 上面添加了一个domain的命名分组，js中命名分组不会影响， 普通的分组序号	
	console.log(str.match(reg))
	// console.log(reg.exec(str))
	
	// 端口未匹配到，仍然占位， 对应组的value = undefined 
	str = "http://www.runoob.com/html/html-tutorial.html?id=3&age=22#good";
	// console.log(str.match(reg))
	

	</script>
</body>
</html>